#include "tir.h"
#include <stdio.h>
#include <math.h>
#include <time.h>
void setTempsTir(Tir* T)
{
    T->temps=((float)clock())/CLOCKS_PER_SEC;
}

void setx0y0Tir(Tir* T, double x0, double y0)
{
    T->x0=x0;
    T->y0=y0;
}

void setRangeTir(Tir* T, int distance)
{
    T->range=distance;
}

void setAngleTir(Tir* T, float rad)
{
    T->angle=rad;
}

void setPertevieTir(Tir* T, int pertevie)
{
    /**/
    T->pertevie=pertevie;
}

float getTempsTir(const Tir* T)
{
    return T->temps;
}

void setxyTir(Tir* T, int x, int y)
{
    T->dobx=T->x=x;
    T->doby=T->y=y;
}

void setidTir(Tir* T, int id)
{
    T->id=id;
}

int getx0Tir(const Tir* T)
{
    return T->x0;
}

int gety0Tir(const Tir* T)
{
    return T->y0;
}

int getRangeTir(const Tir* T)
{
    return T->range;
}

float getAngleTir(const Tir* T)
{
    return T->angle;
}

int getPertevieTir(const Tir* T)
{
    return T->pertevie;
}

int getidTir(const Tir* T)
{
    return T->id;
}

void redemmarerTir(Tir* T)
{
    T->x=T->x0;
    T->y=T->x0;
    T->dobx=(double)T->x0;
    T->doby=(double)T->x0;
}

void initTir(Tir* T,double x, double y, int vmax)
{
    T->temps=((float)clock())/CLOCKS_PER_SEC;
    T->x0=(int)x;
    T->y0=(int)y;
    T->x=(int)x;
    T->y=(int)y;
    T->dobx=x;
    T->doby=y;
    T->pertevie=1;
    T->vmax=vmax;
    T->angle=0;
}

double module (double x0, double y0, double x, double y)
{
    return sqrt((x-x0)*(x-x0)+(y-y0)*(y-y0));
}

void deplacerTir(Tir* T, float intervalle)
{
    T->dobx+=cos(T->angle)*T->vmax*intervalle;
    T->doby+=sin(T->angle)*T->vmax*intervalle;
    T->x=(int)floor(T->dobx);
    T->y=(int)floor(T->doby);

    if (module((double)T->x0,(double)T->y0,T->dobx,T->doby)>=(double)T->range)
        detruireTir(T);
}

int getxTir(const Tir* T)
{
    return T->x;
}

int getyTir(const Tir* T)
{
    return T->y;
}

void detruireTir(Tir* T)
{
    T->pertevie=0;
}

double getxdoubleTir(const Tir* T)
{
    return T->dobx;
}

double getydoubleTir(const Tir* T)
{
    return T->doby;
}
